//import java.util.ArrayList;
//
//public class EvaluateBoard {
//
//	 
//	
//	
//	public static int getScore(Board board, PlayerNBoxes playerNBoxes,ArrayList<Position> targetsFB, int[] signHash)
//	{
//	 	
//		int score=0;
//		if (Helper.isItADeadlock(board, playerNBoxes)) return 100;
//		
////		int sign=BoardSignature.getSignature(board, PlayerNBoxes);
////		System.out.println("the sign is : "+sign);
////		signHash[sign]+=1;
////		if(signHash[sign]==2) 
////		{   this.nodes.remove(nodes.size()-1);
////			signHash[sign]-=1;
////			continue;
////		}
////		else 
////		{	
////			System.out.println("the sign is : "+sign);
////			 actualNode.print();
////		}
//		Position[] boxes;
//		
//		boxes=playerNBoxes.getBoxes();
//		Position[] targets;
//		
//		targets = new Position[targetsFB.size()];
//		for ( int i = 0; i < targetsFB.size(); i++){
//			targets[i] = targetsFB.get(i);
//			
//		}
//		
//		
//		//move from x1,y1 to x2,y2  
//		int distance=0;
//		int min=0;
//		int[] min_distance=new int[targets.length];  //reusable variables ...
//		
//		for (int i=0; i<targets.length;i++)
//		{
//			
//			for (int j=0;j<boxes.length; j++)
//			{
//              
//			  distance=getDistance(targets[i],boxes[j]);
//			  if(i==0 || distance<min)
//			  {
//				  min=distance;
//			  }
//			  
//			}
//			min_distance[i]=min;
//		    score+=min;
//		   
//		
//		}
//		
//		
//	   
//		
//		System.out.println("score is "+score);
//	 	return score;
//	 	
//	}
//    
//	private static int getDistance(Position target, Position box)
//	{
//		int distance=0;
//		
//		distance= Math.abs(box.getI()-target.getI()) + Math.abs(box.getJ()-target.getJ());
//		// once the move_box function is ready ... we will get this running ...
//		//player moves ..
//		
//		return distance;
//	}
//	
//    
//    
//    
//    
//}
